package cn.topevery.garden.entity.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.topevery.garden.entity.po.PointFile;
import cn.topevery.garden.entity.serializer.GeometrySerializer;
import com.alibaba.fastjson.annotation.JSONField;
import hw.topevery.framework.dto.PointDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.locationtech.jts.geom.Geometry;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

@Data
@ApiModel(value = "Point 视图", description = "样点管理 视图")
public class PointVO implements Serializable {
    @ApiModelProperty(value = "id")
    private String id;
    @ApiModelProperty(value = "样点编号")
    @Excel(name = "样点标号", orderNum = "0")
    private String pointId;

    @ApiModelProperty(value = "区域id")
    private String distractId;

    @ApiModelProperty(value = "区域")
    @Excel(name = "区域", orderNum = "0")
    private String distractName;

    @ApiModelProperty(value = "所属路段id")
    private String roadId;
    @ApiModelProperty(value = "所属路段")
    @Excel(name = "所属路段", orderNum = "0")
    private String roadName;

    @ApiModelProperty(value = "所属标段id")
    private String sectionId;
    @ApiModelProperty(value = "所属标段")
    @Excel(name = "所属标段", orderNum = "0")
    private String sectionName;

    @ApiModelProperty(value = "绿地面积")
    @Excel(name = "绿地面积", orderNum = "0")
    private String greMeasure;

    @ApiModelProperty(value = "乔木数量")
    @Excel(name = "乔木数量", orderNum = "0")
    private Integer treeNumber;

    @ApiModelProperty(value = "养护级别")
    @Excel(name = "养护级别", orderNum = "0")
    private Integer protectLevel;

    @ApiModelProperty(value = "是否调入 0 调入 1 调出")
    private Integer status;

    @ApiModelProperty(value = "修改时间")
    private LocalDateTime dbLastUpdateDate;

    @ApiModelProperty(value = "修改人")
    private String updateName;

    private Integer personCount;

    private Integer equipmentCount;

    private String pointNum;

    private Integer checkId;

    @ApiModelProperty(value = "范围 百度")
    @Excel(name = "范围 百度", orderNum = "0")
    @JSONField(serializeUsing = GeometrySerializer.class, deserializeUsing = GeometrySerializer.class)
    private Geometry mapRanges;

    @ApiModelProperty(value = "范围 百度墨卡托")
    @Excel(name = "范围 百度墨卡托", orderNum = "0")
    @JSONField(serializeUsing = GeometrySerializer.class, deserializeUsing = GeometrySerializer.class)
    private Geometry geomMkt;

    /**
     * 计算空间数据
     */
    @ApiModelProperty(value = "计算空间数据")
    @Excel(name = "计算空间数据", orderNum = "0")
    private String geoWkt;

    @ApiModelProperty(value = "范围点信息")
    private List<List <PointDto>> mapRangesPoints;

    @ApiModelProperty(value = "附件")
    private List<PointFile> fileList;

    @ApiModelProperty(value = "所属绿地id")
    private Integer landId;

    @ApiModelProperty(value = "所属绿地id")
    private String landCode;
}
